package com.liu.frame.log;

import android.content.Context;

import com.liu.frame.config.Constant;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @Author: baijianghai
 * 
 * @Description :LogInfo日志信息类
 * 
 * @Date: 2015年3月31日 上午10:26:01
 * 
 * @Version:2.0
 */
public class LogInfo {
	static String m_filePath; // 地址
	static String m_LogName; // 日志名

	/**
	 * 获取日志文件名
	 * 
	 * @return m_LogName 日志文件名
	 */
	private static String getLogName() {
		Calendar calendar = Calendar.getInstance();
		Date date = new Date(calendar.getTimeInMillis());
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		m_LogName = format.format(date) + "_LogInfo.log";
		return m_LogName;
	}

	/**
	 * 记录日志信息
	 * 
	 * @param context
	 *            上下文对象
	 * @param info
	 *            记录的日志信息
	 */
	public static void write(Context context, String info) {
		String filePath = Constant.FILE_LOG_ERROR;
		try {
			File targetFile = new File(filePath + getLogName());
			if (!targetFile.exists()) {
				try {
					targetFile.getParentFile().mkdirs();
					targetFile.createNewFile();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			m_filePath = filePath + getLogName();// log记录的地址
			RandomAccessFile raf = new RandomAccessFile(targetFile, "rw");
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			String dateTime = sdf.format(Calendar.getInstance().getTime());
			String message = "";
			if (info != null && !info.equals("")) {
				message = dateTime + " " + info + "\r\n";
			} else {
				message = dateTime + " \r\n";
			}
			raf.seek(targetFile.length());
			raf.write(message.getBytes());
			raf.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 删除日志
	 */
	public static void clear() {
		File targetFile = new File(m_filePath);
		if (targetFile.exists()) {
			targetFile.delete();
			try {
				targetFile.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
